/*****************************************************************************
 *   Copyright 2005 Tim A Wang
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 ****************************************************************************/
package com.jb.web.bean.custom;

import com.jb.framework.PersistentContext;
import com.jb.web.application.EventManager;
import com.jb.web.bean.HtmlItem;
import com.jb.web.bean.event.UIValueChangeEvent;
import com.jb.web.context.WebContext;


public class Rater extends HtmlItem {
    static final long serialVersionUID = 123123L;
    static {
        publish(Rater.class, EVENT_HANDLER, "onRateChange");
        publish(Rater.class, DATA, "defaultValue");//model value
    }    
    
    private String onRateChange;
    private float currentRate = 0;

    public void setCurrentRate(float currentRate) {
      if(this.currentRate!=currentRate)
      {
          WebContext webCtx = (WebContext) this.getFacesContext();
          if(webCtx!=null && onRateChange!=null)
          {
            UIValueChangeEvent event = new UIValueChangeEvent(this,webCtx.getRequest(),"currentRate", new Float(this.currentRate), new Float(currentRate));
            EventManager.getInstance().handleEvent(webCtx, event, onRateChange);
          }
          this.currentRate = currentRate;
      }
    }
    public void setDefault(PersistentContext pCtx) {
        this.setStyleClass("star-rating");
    }
    
    public float getCurrentRate() {
        return currentRate;
    }

    public void setOnRateChange(String onRateChange) {
        this.onRateChange = onRateChange;
    }

    public String getOnRateChange() {
        return onRateChange;
    }
}
